#ifndef _API_USB_H
#define _API_USB_H

enum {
    USBCHK_ONLY_HOST,
    USBCHK_ONLY_DEVICE,
    USBCHK_OTG,
};

enum {
    USB_DISCONNECT,
    USB_UDISK_CONNECTED,
    USB_PC_CONNECTED,
    USB_DP_GND_CONNECTED,           //假USB设备
    USB_DPDM_SC_CONNECTED,          //Short-Circuit
};

void usb_init(void);
void usb_disable(void);
u8 usbchk_connect(u8 mode);
void udisk_remove(void);
void udisk_insert(void);
void udisk_invalid(void);

void udisk_suspend(void);
void udisk_resume(void);

void usb_device_enter(u8 enum_type);
void usb_device_exit(void);
void usb_device_process(void);
void ude_tmr_isr(void);
void pc_remove(void);
bool usb_device_hid_send(u16 hid_val);
bool usb_device_hid_send_double(u16 hid_val);
bool usb_device_hid_send_data(u8 *buf, u8 len);               //发送多个HID命令接口
void udisk_dpdm_release(bool release);
void is_pc_sel_devspk(u8 *pc_sel_spk);
void usbdev_mic_start(void);
void usbdev_mic_stop(void);
void set_computer_mobile_sta(u8 sta);
u8 computer_mobile_sta(void);   //识别USB主机；1：手机 0：PC
#endif // _API_USB_H
